package com.relytosoft.mizar.media.camera.api.pojo.vo;


import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * @author lj
 * @date 2022/4/14 16:56
 */
public class SysDistrictVo implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 区域ID
     */
    @ApiModelProperty(value = "区域ID")
    private Integer id;

    /**
     * 父区域ID
     */
    @ApiModelProperty(value = "父区域ID")
    private Integer parentId;

    /**
     * 深度路径
     */
    @ApiModelProperty(value = "深度路径")
    private String depthPath;

    /**
     * 深度
     */
    @ApiModelProperty(value = "深度")
    private Integer depth;

    /**
     * 区域名称
     */
    @ApiModelProperty(value = "区域名称", required = true)
    private String name;

    /**
     * 区域编码
     */
    @ApiModelProperty(value = "区域编码")
    private String code;

    /**
     * 安全级别
     */
    @ApiModelProperty(value = "安全级别")
    private Integer securityLevelId;

    /**
     * 区域类型
     */
    @ApiModelProperty(value = "区域类型")
    private Integer type;

    /**
     * 排序
     */
    @ApiModelProperty(value = "排序")
    private Integer sort;

    /**
     * 区域图片;图片ID
     */
    @ApiModelProperty(value = "区域图片;图片ID")
    private Integer districtImg;

    /**
     * 经度
     */
    @ApiModelProperty(value = "经度")
    private BigDecimal longItude;

    /**
     * 纬度
     */
    @ApiModelProperty(value = "纬度")
    private BigDecimal latItude;

    /**
     * 最大滞留人数
     */
    @ApiModelProperty(value = "最大滞留人数")
    private Integer maxPerson;

    /**
     * 描述
     */
    @ApiModelProperty(value = "描述")
    private String remark;

    /**
     * 状态
     */
    @ApiModelProperty(value = "状态")
    private Integer status;

    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    List<SysDistrictVo> children;


    @ApiModelProperty(value = "该节点拥有设备数量")
    private int devicesNumber;


    @ApiModelProperty(value = "该节点拥有通道数量")
    private int channelNumber;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Integer getParentId() {
        return parentId;
    }

    public void setParentId(Integer parentId) {
        this.parentId = parentId;
    }

    public String getDepthPath() {
        return depthPath;
    }

    public void setDepthPath(String depthPath) {
        this.depthPath = depthPath;
    }

    public Integer getDepth() {
        return depth;
    }

    public void setDepth(Integer depth) {
        this.depth = depth;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public Integer getSecurityLevelId() {
        return securityLevelId;
    }

    public void setSecurityLevelId(Integer securityLevelId) {
        this.securityLevelId = securityLevelId;
    }

    public Integer getType() {
        return type;
    }

    public void setType(Integer type) {
        this.type = type;
    }

    public Integer getSort() {
        return sort;
    }

    public void setSort(Integer sort) {
        this.sort = sort;
    }

    public Integer getDistrictImg() {
        return districtImg;
    }

    public void setDistrictImg(Integer districtImg) {
        this.districtImg = districtImg;
    }

    public BigDecimal getLongItude() {
        return longItude;
    }

    public void setLongItude(BigDecimal longItude) {
        this.longItude = longItude;
    }

    public BigDecimal getLatItude() {
        return latItude;
    }

    public void setLatItude(BigDecimal latItude) {
        this.latItude = latItude;
    }

    public Integer getMaxPerson() {
        return maxPerson;
    }

    public void setMaxPerson(Integer maxPerson) {
        this.maxPerson = maxPerson;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public List<SysDistrictVo> getChildren() {
        return children;
    }

    public void setChildren(List<SysDistrictVo> children) {
        this.children = children;
    }


    public int getDevicesNumber() {
        return devicesNumber;
    }

    public void setDevicesNumber(int devicesNumber) {
        this.devicesNumber = devicesNumber;
    }

    public int getChannelNumber() {
        return channelNumber;
    }

    public void setChannelNumber(int channelNumber) {
        this.channelNumber = channelNumber;
    }

    @Override
    public String toString() {
        return "SysDistrictVo{" +
                "id=" + id +
                ", parentId=" + parentId +
                ", depthPath='" + depthPath + '\'' +
                ", depth=" + depth +
                ", name='" + name + '\'' +
                ", code='" + code + '\'' +
                ", securityLevelId=" + securityLevelId +
                ", type=" + type +
                ", sort=" + sort +
                ", districtImg=" + districtImg +
                ", longItude=" + longItude +
                ", latItude=" + latItude +
                ", maxPerson=" + maxPerson +
                ", remark='" + remark + '\'' +
                ", status=" + status +
                ", children=" + children +
                ", devicesNumber=" + devicesNumber +
                ", channelNumber=" + channelNumber +
                '}';
    }
}
